package cn.yilongquan.service;

import cn.yilongquan.user.query.MenuQuery;
import cn.yilongquan.user.domain.Menu;
import cn.yilongquan.util.R;

import java.util.List;

/**
 * 菜单服务接口
 */
public interface MenuService {
    /**
     * 根据ID查询菜单
     */
    Menu findById(Long id);

    /**
     * 查询所有菜单
     */
    List<Menu> findAll();

    /**
     * 新增菜单
     */
    void add(Menu menu);

    /**
     * 更新菜单
     */
    void update(Menu menu);

    /**
     * 根据ID删除菜单
     */
    void deleteById(Long id);

    /**
     * 批量删除菜单
     */
    void batchDelete(List<Long> ids);

    /**
     * 分页查询菜单
     */
    R pageList(MenuQuery menuQuery);

    /**
     * 获取菜单树形结构
     */
    R getTree();

    /**
     * 检查菜单是否有子菜单
     */
    boolean hasChildren(Long id);
}
